/**
 * IPackRegMngService.java
 * Created at 2017-2-21
 * Created by shihui
 * Copyright (C) 2017 BROADTEXT SOFTWARE, All rights reserved.
 */
package com.broadtext.rms.basic.service;

import java.util.List;
import java.util.Map;

import com.broadtext.common.bean.EntityPageBean;
import com.broadtext.common.exp.ServiceException;
import com.broadtext.common.service.IEntityService;
import com.broadtext.rms.basic.model.TmPackSerial;
import com.broadtext.rms.monitor.model.TtPack;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;

/**
 * <p>ClassName: IPackRegMngService</p>
 * <p>Description: 电池注册管理服务层接口类</p>
 * <p>Author: shihui</p>
 * <p>Date: 2017-2-21</p>
 */
public interface IPackRegMngService extends IEntityService<TtPack> {

    /**
     * 
     * <p>Description: 电池注册数据查询</p>
     * @param map 查询条件
     * @param pageBounds 翻页信息
     * @return 查询结果
     * @throws ServiceException 异常
     */
    EntityPageBean<Object> findPackRegList(Map<String, Object> map, PageBounds pageBounds) throws ServiceException;

    /**
     * 
     * <p>Description: 查询客户列表</p>
     * @param map 条件条件
     * @param pageBounds 翻页信息
     * @return 客户
     * @throws ServiceException 异常
     */
    EntityPageBean<Object> findRegCustom(Map<String, Object> map, PageBounds pageBounds) throws ServiceException;

    /**
     * 
     * <p>Description: 根据采集终端ID和电池ID查询采集终端详情</p>
     * @param map 查询条件
     * @return 详情
     * @throws ServiceException 异常
     */
    Map<String, Object> getPackRegDetail(Map<String, Object> map) throws ServiceException;

    /**
     * 
     * <p>Description: 查询未注册的电池唯一码</p>
     * @param packCode 电池ID
     * @return 查询结果
     * @throws ServiceException 异常
     */
    List<TmPackSerial> getSerialNos(String packCode) throws ServiceException;

    /**
     * 
     * <p>Description: 根据电池ID查询注册该ID的电池的关联客户和sim号码</p>
     * @param packCode 电池ID
     * @return 客户信息+sim号码
     * @throws ServiceException 异常
     */
    Map<String, Object> getRegInfoByPackcode(String packCode) throws ServiceException;

    /**
     * 
     * <p>Description: 变更终端时根据电池序列号查询旧电池</p>
     * @param packCode 电池序列号
     * @return （旧）电池
     * @throws ServiceException 异常
     */
    TtPack findRegPackByCode(String packCode) throws ServiceException;

    /**
     * 
     * <p>Description: 根据序列号查询唯一码</p>
     * @param packCode 序列号
     * @return 电池唯一码
     * @throws ServiceException 异常
     */
    List<TmPackSerial> findSerialByPackcode(String packCode) throws ServiceException;
}
